home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 January: Mac OS SDK / Dev.CD Jan 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / AIncludes / QD3DPick.a < prev    next >
Encoding:
Text File  |  1998-08-17  |  9.5 KB  |  334 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        QD3DPick.a
  3. ;
  4. ;    Contains:    Q3Pick methods                                    
  5. ;
  6. ;    Version:    Technology:    Quickdraw 3D 1.5.4
  7. ;                Release:    Universal Interfaces 3.2
  8. ;
  9. ;    Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__QD3DPICK__') = 'UNDEFINED' THEN
  18. __QD3DPICK__ SET 1
  19.  
  20.     IF &TYPE('__QD3D__') = 'UNDEFINED' THEN
  21.     include 'QD3D.a'
  22.     ENDIF
  23.  
  24.     IF &TYPE('__QD3DSTYLE__') = 'UNDEFINED' THEN
  25.     include 'QD3DStyle.a'
  26.     ENDIF
  27.     IF &TYPE('__QD3DGEOMETRY__') = 'UNDEFINED' THEN
  28.     include 'QD3DGeometry.a'
  29.     ENDIF
  30.  
  31. ; *****************************************************************************
  32. ; **                                                                            **
  33. ; **                            Mask bits for hit information                     **
  34. ; **                                                                            **
  35. ; ****************************************************************************
  36.  
  37.  
  38. ; typedef long                            TQ3PickDetailMasks
  39. kQ3PickDetailNone                EQU        0
  40. kQ3PickDetailMaskPickID            EQU        $01
  41. kQ3PickDetailMaskPath            EQU        $02
  42. kQ3PickDetailMaskObject            EQU        $04
  43. kQ3PickDetailMaskLocalToWorldMatrix EQU    $08
  44. kQ3PickDetailMaskXYZ            EQU        $10
  45. kQ3PickDetailMaskDistance        EQU        $20
  46. kQ3PickDetailMaskNormal            EQU        $40
  47. kQ3PickDetailMaskShapePart        EQU        $80
  48. kQ3PickDetailMaskPickPart        EQU        $0100
  49. kQ3PickDetailMaskUV                EQU        $0200
  50. ; typedef unsigned long                 TQ3PickDetail
  51.  
  52. ; ******************************************************************************
  53. ; **                                                                             **
  54. ; **                                Hitlist sorting                                 **
  55. ; **                                                                             **
  56. ; ****************************************************************************
  57.  
  58.  
  59. ; typedef long                            TQ3PickSort
  60. kQ3PickSortNone                    EQU        0
  61. kQ3PickSortNearToFar            EQU        1
  62. kQ3PickSortFarToNear            EQU        2
  63.  
  64. ; ******************************************************************************
  65. ; **                                                                             **
  66. ; **                    Data structures to set up the pick object                 **
  67. ; **                                                                             **
  68. ; ****************************************************************************
  69.  
  70. TQ3PickData                RECORD 0
  71. sort                     ds.l    1                ; offset: $0 (0)
  72. mask                     ds.l    1                ; offset: $4 (4)
  73. numHitsToReturn             ds.l    1                ; offset: $8 (8)
  74. sizeof                     EQU *                    ; size:   $C (12)
  75.                         ENDR
  76. TQ3WindowPointPickData    RECORD 0
  77. data                     ds        TQ3PickData        ; offset: $0 (0)
  78. point                     ds        TQ3Point2D        ; offset: $C (12)
  79. vertexTolerance             ds        Float32            ; offset: $14 (20)
  80. edgeTolerance             ds        Float32            ; offset: $18 (24)
  81. sizeof                     EQU *                    ; size:   $1C (28)
  82.                         ENDR
  83. TQ3WindowRectPickData    RECORD 0
  84. data                     ds        TQ3PickData        ; offset: $0 (0)
  85. rect                     ds        TQ3Area            ; offset: $C (12)
  86. sizeof                     EQU *                    ; size:   $1C (28)
  87.                         ENDR
  88. ; ******************************************************************************
  89. ; **                                                                             **
  90. ; **                                    Hit data                                 **
  91. ; **                                                                             **
  92. ; ****************************************************************************
  93.  
  94. TQ3HitPath                RECORD 0
  95. rootGroup                 ds.l    1                ; offset: $0 (0)
  96. depth                     ds.l    1                ; offset: $4 (4)
  97. positions                 ds.l    1                ; offset: $8 (8)
  98. sizeof                     EQU *                    ; size:   $C (12)
  99.                         ENDR
  100. ; ******************************************************************************
  101. ; **                                                                             **
  102. ; **                                Pick class methods                             **
  103. ; **                                                                             **
  104. ; ****************************************************************************
  105.  
  106. ;
  107. ; extern TQ3ObjectType Q3Pick_GetType(TQ3PickObject pick)
  108. ;
  109.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  110.         IMPORT_CFM_FUNCTION Q3Pick_GetType
  111.     ENDIF
  112.  
  113. ;
  114. ; extern TQ3Status Q3Pick_GetData(TQ3PickObject pick, TQ3PickData *data)
  115. ;
  116.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  117.         IMPORT_CFM_FUNCTION Q3Pick_GetData
  118.     ENDIF
  119.  
  120. ;
  121. ; extern TQ3Status Q3Pick_SetData(TQ3PickObject pick, const TQ3PickData *data)
  122. ;
  123.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  124.         IMPORT_CFM_FUNCTION Q3Pick_SetData
  125.     ENDIF
  126.  
  127. ;
  128. ; extern TQ3Status Q3Pick_GetVertexTolerance(TQ3PickObject pick, float *vertexTolerance)
  129. ;
  130.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  131.         IMPORT_CFM_FUNCTION Q3Pick_GetVertexTolerance
  132.     ENDIF
  133.  
  134. ;
  135. ; extern TQ3Status Q3Pick_GetEdgeTolerance(TQ3PickObject pick, float *edgeTolerance)
  136. ;
  137.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  138.         IMPORT_CFM_FUNCTION Q3Pick_GetEdgeTolerance
  139.     ENDIF
  140.  
  141. ;
  142. ; extern TQ3Status Q3Pick_SetVertexTolerance(TQ3PickObject pick, float vertexTolerance)
  143. ;
  144.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  145.         IMPORT_CFM_FUNCTION Q3Pick_SetVertexTolerance
  146.     ENDIF
  147.  
  148. ;
  149. ; extern TQ3Status Q3Pick_SetEdgeTolerance(TQ3PickObject pick, float edgeTolerance)
  150. ;
  151.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  152.         IMPORT_CFM_FUNCTION Q3Pick_SetEdgeTolerance
  153.     ENDIF
  154.  
  155. ;
  156. ; extern TQ3Status Q3Pick_GetNumHits(TQ3PickObject pick, unsigned long *numHits)
  157. ;
  158.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  159.         IMPORT_CFM_FUNCTION Q3Pick_GetNumHits
  160.     ENDIF
  161.  
  162. ;
  163. ; extern TQ3Status Q3Pick_EmptyHitList(TQ3PickObject pick)
  164. ;
  165.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  166.         IMPORT_CFM_FUNCTION Q3Pick_EmptyHitList
  167.     ENDIF
  168.  
  169. ;
  170. ; extern TQ3Status Q3Pick_GetPickDetailValidMask(TQ3PickObject pick, unsigned long index, TQ3PickDetail *pickDetailValidMask)
  171. ;
  172.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  173.         IMPORT_CFM_FUNCTION Q3Pick_GetPickDetailValidMask
  174.     ENDIF
  175.  
  176. ;
  177. ; extern TQ3Status Q3Pick_GetPickDetailData(TQ3PickObject pick, unsigned long index, TQ3PickDetail pickDetailValue, void *detailData)
  178. ;
  179.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  180.         IMPORT_CFM_FUNCTION Q3Pick_GetPickDetailData
  181.     ENDIF
  182.  
  183. ;
  184. ; extern TQ3Status Q3HitPath_EmptyData(TQ3HitPath *hitPath)
  185. ;
  186.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  187.         IMPORT_CFM_FUNCTION Q3HitPath_EmptyData
  188.     ENDIF
  189.  
  190. ; ******************************************************************************
  191. ; **                                                                             **
  192. ; **                            Window point pick methods                         **
  193. ; **                                                                             **
  194. ; ****************************************************************************
  195.  
  196. ;
  197. ; extern TQ3PickObject Q3WindowPointPick_New(const TQ3WindowPointPickData *data)
  198. ;
  199.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  200.         IMPORT_CFM_FUNCTION Q3WindowPointPick_New
  201.     ENDIF
  202.  
  203. ;
  204. ; extern TQ3Status Q3WindowPointPick_GetPoint(TQ3PickObject pick, TQ3Point2D *point)
  205. ;
  206.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  207.         IMPORT_CFM_FUNCTION Q3WindowPointPick_GetPoint
  208.     ENDIF
  209.  
  210. ;
  211. ; extern TQ3Status Q3WindowPointPick_SetPoint(TQ3PickObject pick, const TQ3Point2D *point)
  212. ;
  213.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  214.         IMPORT_CFM_FUNCTION Q3WindowPointPick_SetPoint
  215.     ENDIF
  216.  
  217. ;
  218. ; extern TQ3Status Q3WindowPointPick_GetData(TQ3PickObject pick, TQ3WindowPointPickData *data)
  219. ;
  220.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  221.         IMPORT_CFM_FUNCTION Q3WindowPointPick_GetData
  222.     ENDIF
  223.  
  224. ;
  225. ; extern TQ3Status Q3WindowPointPick_SetData(TQ3PickObject pick, const TQ3WindowPointPickData *data)
  226. ;
  227.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  228.         IMPORT_CFM_FUNCTION Q3WindowPointPick_SetData
  229.     ENDIF
  230.  
  231.  
  232. ; ******************************************************************************
  233. ; **                                                                             **
  234. ; **                            Window rect pick methods                         **
  235. ; **                                                                             **
  236. ; ****************************************************************************
  237.  
  238. ;
  239. ; extern TQ3PickObject Q3WindowRectPick_New(const TQ3WindowRectPickData *data)
  240. ;
  241.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  242.         IMPORT_CFM_FUNCTION Q3WindowRectPick_New
  243.     ENDIF
  244.  
  245. ;
  246. ; extern TQ3Status Q3WindowRectPick_GetRect(TQ3PickObject pick, TQ3Area *rect)
  247. ;
  248.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  249.         IMPORT_CFM_FUNCTION Q3WindowRectPick_GetRect
  250.     ENDIF
  251.  
  252. ;
  253. ; extern TQ3Status Q3WindowRectPick_SetRect(TQ3PickObject pick, const TQ3Area *rect)
  254. ;
  255.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  256.         IMPORT_CFM_FUNCTION Q3WindowRectPick_SetRect
  257.     ENDIF
  258.  
  259. ;
  260. ; extern TQ3Status Q3WindowRectPick_GetData(TQ3PickObject pick, TQ3WindowRectPickData *data)
  261. ;
  262.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  263.         IMPORT_CFM_FUNCTION Q3WindowRectPick_GetData
  264.     ENDIF
  265.  
  266. ;
  267. ; extern TQ3Status Q3WindowRectPick_SetData(TQ3PickObject pick, const TQ3WindowRectPickData *data)
  268. ;
  269.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  270.         IMPORT_CFM_FUNCTION Q3WindowRectPick_SetData
  271.     ENDIF
  272.  
  273.  
  274.  
  275. ; ******************************************************************************
  276. ; **                                                                             **
  277. ; **                                Shape Part methods                             **
  278. ; **                                                                             **
  279. ; ****************************************************************************
  280.  
  281. ;
  282. ; extern TQ3ObjectType Q3ShapePart_GetType(TQ3ShapePartObject shapePartObject)
  283. ;
  284.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  285.         IMPORT_CFM_FUNCTION Q3ShapePart_GetType
  286.     ENDIF
  287.  
  288. ;
  289. ; extern TQ3ObjectType Q3MeshPart_GetType(TQ3MeshPartObject meshPartObject)
  290. ;
  291.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  292.         IMPORT_CFM_FUNCTION Q3MeshPart_GetType
  293.     ENDIF
  294.  
  295. ;
  296. ; extern TQ3Status Q3ShapePart_GetShape(TQ3ShapePartObject shapePartObject, TQ3ShapeObject *shapeObject)
  297. ;
  298.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  299.         IMPORT_CFM_FUNCTION Q3ShapePart_GetShape
  300.     ENDIF
  301.  
  302. ;
  303. ; extern TQ3Status Q3MeshPart_GetComponent(TQ3MeshPartObject meshPartObject, TQ3MeshComponent *component)
  304. ;
  305.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  306.         IMPORT_CFM_FUNCTION Q3MeshPart_GetComponent
  307.     ENDIF
  308.  
  309. ;
  310. ; extern TQ3Status Q3MeshFacePart_GetFace(TQ3MeshFacePartObject meshFacePartObject, TQ3MeshFace *face)
  311. ;
  312.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  313.         IMPORT_CFM_FUNCTION Q3MeshFacePart_GetFace
  314.     ENDIF
  315.  
  316. ;
  317. ; extern TQ3Status Q3MeshEdgePart_GetEdge(TQ3MeshEdgePartObject meshEdgePartObject, TQ3MeshEdge *edge)
  318. ;
  319.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  320.         IMPORT_CFM_FUNCTION Q3MeshEdgePart_GetEdge
  321.     ENDIF
  322.  
  323. ;
  324. ; extern TQ3Status Q3MeshVertexPart_GetVertex(TQ3MeshVertexPartObject meshVertexPartObject, TQ3MeshVertex *vertex)
  325. ;
  326.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  327.         IMPORT_CFM_FUNCTION Q3MeshVertexPart_GetVertex
  328.     ENDIF
  329.  
  330.  
  331.  
  332.     ENDIF ; __QD3DPICK__ 
  333.  
  334.